package org.iamd.domain.meta;

import org.iamd.domain.business.ApplicationException;

/**
 * Интерфейс на номенклатурите в приложението.
 * 
 * @author И. Атанасов
 */
public interface INomTypes {

	/**
	 * @return инстанция на съответните метаданни
	 * 
	 * @throws ApplicationException
	 *             при неуспешно инстанциране
	 */
	Metadata getMetadataInstance() throws ApplicationException;

	/**
	 * @return ключ за достъп до метаданните
	 */
	String getMetadataName();

	/**
	 * Показва дали метаданните поддържат кеширане.
	 * 
	 * @return <code>true</code> ако се кешират, <code>false</code> ако не може
	 */
	boolean isCacheable();

}